package com.mdd.common.service;

import com.mdd.common.core.AjaxResult;
import com.mdd.common.entity.article.ArticleCategory;
import com.mdd.common.validate.push.PushInfoApplyValidate;
import com.mdd.common.vo.LabelDataVo;
import com.mdd.common.vo.business.BusinessSubmitResultVo;
import com.mdd.common.vo.push.PushInfoDetialVo;
import com.mdd.common.vo.push.PushInfoIndexVo;
import com.mdd.common.vo.topset.TopSetVo;

import java.util.List;

/**
 * 发布信息 业务
 */
public interface IPushService {

    /**
     * 发布分类 存缓存
     */
    void pushClass2Redis();


    /**
     * 配置
     *
     * @return
     */
    TopSetVo config();


    /**
     * 分类
     *
     * @return
     */
    List<ArticleCategory> getArticleCategoryList();

    /**
     * 获取发布分类
     *
     * @return
     */
    List<ArticleCategory> getPushClass();


    /**
     * 获取 发布分类标签
     *
     * @param categoryId
     * @return
     */
    List<LabelDataVo> getLabelList(Integer categoryId);

    /**
     * 分类发布初始化
     *
     * @param categoryId
     * @param userId
     * @return
     */
    PushInfoIndexVo getPushIndex(Integer categoryId, Integer userId);

    /**
     * 提交发布信息
     *
     * @param applyValidate
     * @return
     */
    BusinessSubmitResultVo submitPushInfo(PushInfoApplyValidate applyValidate);


    /**
     * 筛选列表
     *
     * @return
     */
    AjaxResult<Object> getPushInfoListConfig();

    /**
     * 获取发布详情
     *
     * @param id
     * @return
     */
    PushInfoDetialVo getPushInfoDetail(Integer id);
}
